// 负责管理所有的自定义指令
// 定义指令的语法：Vue.directive('指令名', 配置对象)
// 定义一个 指令名 = 配置对象
// 使用指令的方式 ：<dom v-focus=true />

// 提供思路：可以引入Vue实例，直接在这个页面注册
export const imagerror = {
  // 指令对象 会在当前的dom元素插入到节点之后执行
  inserted(dom, { value }) {
    // dom 表示当前指令作用的dom对象
    // dom认为此时就是图片
    dom.src = dom.src || value // 初始化的时候 如果有值就赋值 如果没值就用默认值赋值
    // 当图片有地址 但是地址没有加载成功的时候 会报错 会触发图片的一个事件 -> onerror
    dom.onerror = function() {
      // 图片加载错误的事件 重新给图片设置src
      dom.src = value
    }
  },
  componentUpdated(dom, options) {
    // 该钩子函数会在当前指令作用的组件更新数据完毕之后执行
    // inserted只会执行一次
    // 组件初始化一旦更新就会在进入inserted会进去componentUpdated
    dom.src = dom.src || options.value
  }
}
